/*
	The directives starting with # below ensures that this file is read by the compiler only once
	even if it is #included several times. It is call an "include guard"
*/
#ifndef CATEGORY_H_
#define CATEGORY_H_

#include <string>
#include <sstream>
#include <iomanip>
using namespace std;

struct Category {
public:
	// constructors
	Category () {}
	Category (int id, string n)
		:cat_id(id), cat_name(n) {}
    // utility functions
	//[THORIQ-B.2]
	string header() const {
		ostringstream oss;
		oss << left << setw(10) << "ID"
			<< left << setw(20) << "Category Name"
			<< "Menu Items";
		return oss.str();
	}
	string display() const {	
		ostringstream oss;
		oss << left << setw(11) << cat_id 
			<< cat_name << '\t';
		return oss.str();
	}

	int get_cat_id() const {return cat_id;} //HHC Part II B.3
	string get_cat_name() const {return cat_name;} //HHC Part II B.3

private:
   //constants
     
   // private data
	int cat_id;
	string cat_name;
};


#endif //CATEGORY_H_
